package com.yangfan.thread.thread_wangwenjun08;

/**
 * Future        ->代表的是未来的一个凭据
 * FutureTask    ->将你的调用逻辑进行了隔离
 * FutureService ->桥接 Future和 FutureTask
 *
 * 模拟一个制作蛋糕的例子
 *
 */

public class SyncInvoker {

    public static void main(String[] args) throws InterruptedException {

        FutureService futureService = new FutureService();

        futureService.submit(() -> {

            //这里是一个 要异步执行的  代码
            //也是 案例 制作 蛋糕的 过程

            //假设制作蛋糕需要 10ms
            try {
                Thread.sleep(10000l);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "蛋糕制作完成";

        },System.out::println);//这段代码 是  Consumer<T> consumer 接口的 实现  比如

        System.out.println("===========");
        System.out.println(" do other thing.");
        Thread.sleep(1000);
        System.out.println("===========");

    }


}